import { getLogin, getUser } from '@/api/user'
import { getToken, setToken } from '@/utils/auth'
import { resetRouter } from '@/router'

const state = {
  // 用户信息
  userInfo: {},
  // token
  token: getToken() || null
}

const mutations = {
  // 获取用户信息
  setUser(state, userInfo) {
    state.userInfo = userInfo
  },
  // 登录
  setLogin(store, token) {
    store.token = token
    // 存储 token
    setToken(token)
  }
}

const actions = {
  // 获取用户信息
  async getUser(context) {
    const res = await getUser()
    // console.log(res.data)
    context.commit('setUser', res.data)
    return res.data
  },
  // 登录请求
  async hLogin(context, obj) {
    // console.log(context, obj)
    const res = await getLogin(obj)
    const token = res.data
    context.commit('setLogin', token)
  },
  // 退出登录
  logout(context) {
    // 清除 token
    context.commit('setLogin', '')
    // removeToken()
    // 清除用户信息
    context.commit('setUser', {})
    // 重置路由
    resetRouter()
  }
}

export default {
  namespaced: true,
  state,
  mutations,
  actions
}

